<template>
  <div>
    <h1>购物车</h1>
    <div v-for="item in cart" :key="item.id">
      {{ item.name }} - {{ item.price }} 元
      <button @click="removeItem(item.id)">移除</button>
    </div>
    <h2>总计: {{ totalPrice }}</h2>
    <div>
      <h3>使用 v-memo 的总计:</h3>
      <h2 v-memo="[cart]">总计: {{ memoTotalPrice }}</h2>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      cart: [
        { id: 1, name: '商品 A', price: 100 },
        { id: 2, name: '商品 B', price: 200 }
      ],
    }
  },
  computed: {
    totalPrice() {
      // 假设这是一个复杂的计算过程
      return this.cart.reduce((total, item) => total + item.price, 0);
    },
    memoTotalPrice() {
      // 使用 v-memo 进行记忆化
      return this.cart.reduce((total, item) => total + item.price, 0);
    }
  },
  methods: {
    removeItem(id) {
      this.cart = this.cart.filter(item => item.id !== id);
    }
  }
}
</script>
